package com.eastfair.tag.dto;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.eastfair.tag.enumeration.TagSelectTypeEnum;
import com.eastfair.tag.enumeration.TagTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 实体类
 * 标签表
 * </p>
 *
 * @author zjn
 * @since 2022-03-01
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TagDTO implements Serializable {

    private static final long serialVersionUID = 7839421396009100244L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    private Long id;

    /**
     * 项目ID
     */
    @ApiModelProperty(value = "项目ID")
    private Long projectId;

    /**
     * 类型父级ID
     */
    @ApiModelProperty(value = "类型父级ID")
    private Long parentId;

    /**
     * 标签类型分级code
     */
    @ApiModelProperty(value = "标签类型分级code")
    private String code;

    /**
     * 标签类型 #{classify:分类; node:标签}
     */
    @ApiModelProperty(value = "标签类型 #{classify:分类; node:标签}")
    private TagTypeEnum type;

    /**
     * 标签分类（使用主体）
     */
    @ApiModelProperty(value = "标签分类（使用主体）")
    private String subjectType;

    /**
     * 标签名称
     */
    @ApiModelProperty(value = "标签名称")
    private String name;

    /**
     * 标签英文名称
     */
    @ApiModelProperty(value = "标签英文名称")
    private String enName;

    /**
     * 权重值
     */
    @ApiModelProperty(value = "权重值")
    private Integer weight;

    /**
     * 排序
     */
    @ApiModelProperty(value = "排序")
    private Integer sequence;

    /**
     * 选择类型 #{simple:单选; multiple:多选}
     */
    @ApiModelProperty(value = "选择类型 #{simple:单选; multiple:多选}")
    private TagSelectTypeEnum selectType;
    /**
     * 最小选择数
     */
    @ApiModelProperty(value = "最小选择数")
    private Integer selectMinNumber;
    /**
     * 最大选择数
     */
    @ApiModelProperty(value = "最大选择数")
    private Integer selectMaxNumber;
    /**
     * 是否必选,0非必选，1必选
     */
    @ApiModelProperty(value = "是否必选,0非必选，1必选")
    private Integer isRequired;

    /**
     * 是否启用：1是；0否
     */
    @ApiModelProperty(value = "是否启用：1是；0否")
    private Integer isEnabled;

    /**
     * 是否删除：1是；0否
     */
    @ApiModelProperty(value = "是否删除：1是；0否")
    private Integer isDeleted;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private Long createdBy;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;
    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人")
    private Long updatedBy;
    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    private LocalDateTime updateTime;
}
